package org.rulix.ogame.player.api;


public class OgamePlanet {
	
	//name
	private String name;
	
	// code
	private String code;
	
	// resources
	private long metal;
	private long crystal;
	private long deuterium;
	private long energy;
	
	//coordinates
	private OgamePlanetCoordinates coordinates;
	
	// Buildings
	private int metalMine;
	private int crystalMine;
	private int deuteriumSynthesizer;
	private int solarPlant;
	private int fusionReactor;
	private int roboticsFactory;
	private int naniteFactory;
	private int shipyard;
	private int metalStorage;
	private int crystalStorage;
	private int deuteriumTank;
	private int researchLab;
	private int terraformer;
	private int allianceDepot;
	private int lunarBase;
	private int sensorPhalanx;
	private int jumpGate;
	private int missileSilo;
	
	//ships
	private int smallCargo;
	private int largeCargo;
	private int lightFighter;
	private int heavyFighter;
	private int cruiser;
	private int battleShip;
	private int colonyShip;
	private int recycler;
	private int espionageProbe;
	private int bomber;
	private int solarSatellite;
	private int destroyer;
	private int deathStar;
	private int battlecruiser;
	
	//defenses
	private int rocketLauncher;
	private int lightLaser;
	private int heavyLaser;
	private int gaussCannon;
	private int ionCannon;
	private int plasmaTurret;
	private int smallShieldDome;
	private int largeShieldDome;
	private int antiBallisticMissile;
	private int interplanetaryMissile;
	
	//technologies
	private int espionageTechnology;
	private int computerTechnology;
	private int weaponsTechnology;
	private int shieldingTechnology;
	private int armourTechnology;
	private int energyTechnology;
	private int hyperspaceTechnology;
	private int combustionDrive;
	private int impulseDrive;
	private int hyperspaceDrive;
	private int laserTechnology;
	private int ionTechnology;
	private int plasmaTechnology;
	private int intergalacticResearchNetwork;
	private int gravitonTechnology;
	private int astrophysics;

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getCode() {
		return code;
	}
	public void setCode(String code) {
		this.code = code;
	}
	public OgamePlanetCoordinates getCoordinates() {
		return coordinates;
	}
	public void setCoordinates(OgamePlanetCoordinates coordinates) {
		this.coordinates = coordinates;
	}
	public long getMetal() {
		return metal;
	}
	public void setMetal(long metal) {
		this.metal = metal;
	}
	public long getCrystal() {
		return crystal;
	}
	public void setCrystal(long crystal) {
		this.crystal = crystal;
	}
	public long getDeuterium() {
		return deuterium;
	}
	public void setDeuterium(long deuterium) {
		this.deuterium = deuterium;
	}
	public long getEnergy() {
		return energy;
	}
	public void setEnergy(long energy) {
		this.energy = energy;
	}
	public int getMetalMine() {
		return metalMine;
	}
	public void setMetalMine(int metalMine) {
		this.metalMine = metalMine;
	}
	public int getCrystalMine() {
		return crystalMine;
	}
	public void setCrystalMine(int crystalMine) {
		this.crystalMine = crystalMine;
	}
	public int getDeuteriumSynthesizer() {
		return deuteriumSynthesizer;
	}
	public void setDeuteriumSynthesizer(int deuteriumSynthesizer) {
		this.deuteriumSynthesizer = deuteriumSynthesizer;
	}
	public int getSolarPlant() {
		return solarPlant;
	}
	public void setSolarPlant(int solarPlant) {
		this.solarPlant = solarPlant;
	}
	public int getFusionReactor() {
		return fusionReactor;
	}
	public void setFusionReactor(int fusionReactor) {
		this.fusionReactor = fusionReactor;
	}
	public int getRoboticsFactory() {
		return roboticsFactory;
	}
	public void setRoboticsFactory(int roboticsFactory) {
		this.roboticsFactory = roboticsFactory;
	}
	public int getNaniteFactory() {
		return naniteFactory;
	}
	public void setNaniteFactory(int naniteFactory) {
		this.naniteFactory = naniteFactory;
	}
	public int getShipyard() {
		return shipyard;
	}
	public void setShipyard(int shipyard) {
		this.shipyard = shipyard;
	}
	public int getMetalStorage() {
		return metalStorage;
	}
	public void setMetalStorage(int metalStorage) {
		this.metalStorage = metalStorage;
	}
	public int getCrystalStorage() {
		return crystalStorage;
	}
	public void setCrystalStorage(int crystalStorage) {
		this.crystalStorage = crystalStorage;
	}
	public int getDeuteriumTank() {
		return deuteriumTank;
	}
	public void setDeuteriumTank(int deuteriumTank) {
		this.deuteriumTank = deuteriumTank;
	}
	public int getResearchLab() {
		return researchLab;
	}
	public void setResearchLab(int researchLab) {
		this.researchLab = researchLab;
	}
	public int getTerraformer() {
		return terraformer;
	}
	public void setTerraformer(int terraformer) {
		this.terraformer = terraformer;
	}
	public int getAllianceDepot() {
		return allianceDepot;
	}
	public void setAllianceDepot(int allianceDepot) {
		this.allianceDepot = allianceDepot;
	}
	public int getLunarBase() {
		return lunarBase;
	}
	public void setLunarBase(int lunarBase) {
		this.lunarBase = lunarBase;
	}
	public int getSensorPhalanx() {
		return sensorPhalanx;
	}
	public void setSensorPhalanx(int sensorPhalanx) {
		this.sensorPhalanx = sensorPhalanx;
	}
	public int getJumpGate() {
		return jumpGate;
	}
	public void setJumpGate(int jumpGate) {
		this.jumpGate = jumpGate;
	}
	public int getMissileSilo() {
		return missileSilo;
	}
	public void setMissileSilo(int missileSilo) {
		this.missileSilo = missileSilo;
	}
	public int getSmallCargo() {
		return smallCargo;
	}
	public void setSmallCargo(int smallCargo) {
		this.smallCargo = smallCargo;
	}
	public int getLargeCargo() {
		return largeCargo;
	}
	public void setLargeCargo(int largeCargo) {
		this.largeCargo = largeCargo;
	}
	public int getLightFighter() {
		return lightFighter;
	}
	public void setLightFighter(int lightFighter) {
		this.lightFighter = lightFighter;
	}
	public int getHeavyFighter() {
		return heavyFighter;
	}
	public void setHeavyFighter(int heavyFighter) {
		this.heavyFighter = heavyFighter;
	}
	public int getCruiser() {
		return cruiser;
	}
	public void setCruiser(int cruiser) {
		this.cruiser = cruiser;
	}
	public int getBattleShip() {
		return battleShip;
	}
	public void setBattleShip(int battleShip) {
		this.battleShip = battleShip;
	}
	public int getColonyShip() {
		return colonyShip;
	}
	public void setColonyShip(int colonyShip) {
		this.colonyShip = colonyShip;
	}
	public int getRecycler() {
		return recycler;
	}
	public void setRecycler(int recycler) {
		this.recycler = recycler;
	}
	public int getEspionageProbe() {
		return espionageProbe;
	}
	public void setEspionageProbe(int espionageProbe) {
		this.espionageProbe = espionageProbe;
	}
	public int getBomber() {
		return bomber;
	}
	public void setBomber(int bomber) {
		this.bomber = bomber;
	}
	public int getSolarSatellite() {
		return solarSatellite;
	}
	public void setSolarSatellite(int solarSatellite) {
		this.solarSatellite = solarSatellite;
	}
	public int getDestroyer() {
		return destroyer;
	}
	public void setDestroyer(int destroyer) {
		this.destroyer = destroyer;
	}
	public int getDeathStar() {
		return deathStar;
	}
	public void setDeathStar(int deathStar) {
		this.deathStar = deathStar;
	}
	public int getBattlecruiser() {
		return battlecruiser;
	}
	public void setBattlecruiser(int battlecruiser) {
		this.battlecruiser = battlecruiser;
	}
	public int getRocketLauncher() {
		return rocketLauncher;
	}
	public void setRocketLauncher(int rocketLauncher) {
		this.rocketLauncher = rocketLauncher;
	}
	public int getLightLaser() {
		return lightLaser;
	}
	public void setLightLaser(int lightLaser) {
		this.lightLaser = lightLaser;
	}
	public int getHeavyLaser() {
		return heavyLaser;
	}
	public void setHeavyLaser(int heavyLaser) {
		this.heavyLaser = heavyLaser;
	}
	public int getGaussCannon() {
		return gaussCannon;
	}
	public void setGaussCannon(int gaussCannon) {
		this.gaussCannon = gaussCannon;
	}
	public int getIonCannon() {
		return ionCannon;
	}
	public void setIonCannon(int ionCannon) {
		this.ionCannon = ionCannon;
	}
	public int getPlasmaTurret() {
		return plasmaTurret;
	}
	public void setPlasmaTurret(int plasmaTurret) {
		this.plasmaTurret = plasmaTurret;
	}
	public int getSmallShieldDome() {
		return smallShieldDome;
	}
	public void setSmallShieldDome(int smallShieldDome) {
		this.smallShieldDome = smallShieldDome;
	}
	public int getLargeShieldDome() {
		return largeShieldDome;
	}
	public void setLargeShieldDome(int largeShieldDome) {
		this.largeShieldDome = largeShieldDome;
	}
	public int getAntiBallisticMissile() {
		return antiBallisticMissile;
	}
	public void setAntiBallisticMissile(int antiBallisticMissile) {
		this.antiBallisticMissile = antiBallisticMissile;
	}
	public int getInterplanetaryMissile() {
		return interplanetaryMissile;
	}
	public void setInterplanetaryMissile(int interplanetaryMissile) {
		this.interplanetaryMissile = interplanetaryMissile;
	}
	public int getEspionageTechnology() {
		return espionageTechnology;
	}
	public void setEspionageTechnology(int espionageTechnology) {
		this.espionageTechnology = espionageTechnology;
	}
	public int getComputerTechnology() {
		return computerTechnology;
	}
	public void setComputerTechnology(int computerTechnology) {
		this.computerTechnology = computerTechnology;
	}
	public int getWeaponsTechnology() {
		return weaponsTechnology;
	}
	public void setWeaponsTechnology(int weaponsTechnology) {
		this.weaponsTechnology = weaponsTechnology;
	}
	public int getShieldingTechnology() {
		return shieldingTechnology;
	}
	public void setShieldingTechnology(int shieldingTechnology) {
		this.shieldingTechnology = shieldingTechnology;
	}
	public int getArmourTechnology() {
		return armourTechnology;
	}
	public void setArmourTechnology(int armourTechnology) {
		this.armourTechnology = armourTechnology;
	}
	public int getEnergyTechnology() {
		return energyTechnology;
	}
	public void setEnergyTechnology(int energyTechnology) {
		this.energyTechnology = energyTechnology;
	}
	public int getHyperspaceTechnology() {
		return hyperspaceTechnology;
	}
	public void setHyperspaceTechnology(int hyperspaceTechnology) {
		this.hyperspaceTechnology = hyperspaceTechnology;
	}
	public int getCombustionDrive() {
		return combustionDrive;
	}
	public void setCombustionDrive(int combustionDrive) {
		this.combustionDrive = combustionDrive;
	}
	public int getImpulseDrive() {
		return impulseDrive;
	}
	public void setImpulseDrive(int impulseDrive) {
		this.impulseDrive = impulseDrive;
	}
	public int getHyperspaceDrive() {
		return hyperspaceDrive;
	}
	public void setHyperspaceDrive(int hyperspaceDrive) {
		this.hyperspaceDrive = hyperspaceDrive;
	}
	public int getLaserTechnology() {
		return laserTechnology;
	}
	public void setLaserTechnology(int laserTechnology) {
		this.laserTechnology = laserTechnology;
	}
	public int getIonTechnology() {
		return ionTechnology;
	}
	public void setIonTechnology(int ionTechnology) {
		this.ionTechnology = ionTechnology;
	}
	public int getPlasmaTechnology() {
		return plasmaTechnology;
	}
	public void setPlasmaTechnology(int plasmaTechnology) {
		this.plasmaTechnology = plasmaTechnology;
	}
	public int getIntergalacticResearchNetwork() {
		return intergalacticResearchNetwork;
	}
	public void setIntergalacticResearchNetwork(int intergalacticResearchNetwork) {
		this.intergalacticResearchNetwork = intergalacticResearchNetwork;
	}
	public int getGravitonTechnology() {
		return gravitonTechnology;
	}
	public void setGravitonTechnology(int gravitonTechnology) {
		this.gravitonTechnology = gravitonTechnology;
	}
	public int getAstrophysics() {
		return astrophysics;
	}
	public void setAstrophysics(int astrophysics) {
		this.astrophysics = astrophysics;
	}
	
	@Override
	public String toString() {
		return getPlanetInfo();
	}

	public String getPlanetInfo() {
		StringBuilder sb = new StringBuilder();
		
		sb.append("\nPLANET-NAME: '").append(getName()).append("' - '").append(coordinates.toString()).append("'\n");
		sb.append("RESOURCES\n");
		sb.append("---------\n");
		sb.append("  Metal:").append(metal).append("\n");
		sb.append("  Crystal:").append(crystal).append("\n");
		sb.append("  Deuterium:").append(deuterium).append("\n");
		sb.append("  Energy:").append(energy).append("\n");
		sb.append("BUILDINGS\n");
		sb.append("---------\n");
		sb.append("  Metal Mine:").append(metalMine).append("\n");
		sb.append("  Crystal Mine:").append(crystalMine).append("\n");
		sb.append("  Deuterium Synth:").append(deuteriumSynthesizer).append("\n");
		sb.append("  Solar Plant:").append(solarPlant).append("\n");
		sb.append("  Fusion Reactor:").append(fusionReactor).append("\n");
		sb.append("  Satellite:").append(solarSatellite).append("\n");
		sb.append("  Metal Storage:").append(metalStorage).append("\n");
		sb.append("  Crystal Storage:").append(crystalStorage).append("\n");
		sb.append("FACILITIES\n");
		sb.append("----------\n");
		sb.append("  Robotics Factory:").append(roboticsFactory).append("\n");
		sb.append("  Shipyard:").append(shipyard).append("\n");
		sb.append("  Research Lab:").append(researchLab).append("\n");
		sb.append("  Alliance Depot:").append(allianceDepot).append("\n");
		sb.append("  Missile Silo:").append(missileSilo).append("\n");
		sb.append("  Nanites Factory:").append(naniteFactory).append("\n");
		sb.append("  Terraformer:").append(terraformer).append("\n");
		sb.append("RESEARCH\n");
		sb.append("--------\n");
		sb.append("  Energy Tech:").append(energyTechnology).append("\n");
		sb.append("  Laser Tech:").append(laserTechnology).append("\n");
		sb.append("  Ion Tech:").append(ionTechnology).append("\n");
		sb.append("  Hyperspace Tech:").append(hyperspaceTechnology).append("\n");
		sb.append("  Plasma Tech:").append(plasmaTechnology).append("\n");
		sb.append("  Combustion Drive:").append(combustionDrive).append("\n");
		sb.append("  Impulse Drive:").append(impulseDrive).append("\n");
		sb.append("  Hyperspace Drive:").append(hyperspaceDrive).append("\n");
		sb.append("  Espionage Tech:").append(espionageTechnology).append("\n");
		sb.append("  Computer Tech:").append(computerTechnology).append("\n");
		sb.append("  Astrophysics:").append(astrophysics).append("\n");
		sb.append("  Intergal. Research Network:").append(intergalacticResearchNetwork).append("\n");
		sb.append("  Gravition Tech:").append(gravitonTechnology).append("\n");
		sb.append("  Weapons Tech:").append(weaponsTechnology).append("\n");
		sb.append("  Shielding Tech:").append(shieldingTechnology).append("\n");
		sb.append("  Armour Tech:").append(armourTechnology).append("\n");
		sb.append("SHIPYARD\n");
		sb.append("--------\n");
		sb.append("  Light Fighter:").append(lightFighter).append("\n");
		sb.append("  Heavy Fighter:").append(heavyFighter).append("\n");
		sb.append("  Cruiser:").append(cruiser).append("\n");
		sb.append("  Battle Ship:").append(battleShip).append("\n");
		sb.append("  Battle Cruiser:").append(battlecruiser).append("\n");
		sb.append("  Bomber:").append(bomber).append("\n");
		sb.append("  Destroyer:").append(destroyer).append("\n");
		sb.append("  Deathstar:").append(deathStar).append("\n");
		sb.append("  Small Cargo:").append(smallCargo).append("\n");
		sb.append("  Large Cargo:").append(largeCargo).append("\n");
		sb.append("  Colony Ship:").append(colonyShip).append("\n");
		sb.append("  Recycler:").append(recycler).append("\n");
		sb.append("  Espionage Probe:").append(espionageProbe).append("\n");
		sb.append("  Solar Satellite:").append(solarSatellite).append("\n");
		sb.append("DEFENSE\n");
		sb.append("--------\n");
		sb.append("  Rocket Launcher:").append(rocketLauncher).append("\n");
		sb.append("  Light Laser:").append(lightLaser).append("\n");
		sb.append("  Heavy Laser:").append(heavyLaser).append("\n");
		sb.append("  Ion Cannon:").append(ionCannon).append("\n");
		sb.append("  Gauss Cannon:").append(gaussCannon).append("\n");
		sb.append("  Plasma Turret:").append(plasmaTurret).append("\n");
		sb.append("  Small Shield Dome:").append(smallShieldDome).append("\n");
		sb.append("  Large Shield Dome:").append(largeShieldDome).append("\n");
		sb.append("  Anti Ballistic Missile:").append(antiBallisticMissile).append("\n");
		sb.append("  Interplanetary Missile:").append(interplanetaryMissile).append("\n");
		
		return sb.toString();
	}
	
	
}
